module ecs{
    export class GlobalManager {
        private _enabled: boolean;
        
        /** 
         * 如果启用了GlobalManager，则为true。 
         * 状态更改会导致调用OnEnabled / OnDisable。
         */
        public get Enabled(): boolean{
            return this._enabled;
        }

        public set Enabled(value: boolean){
            this.SetEnabled(value);
        }

        public SetEnabled(isEnabled: boolean){
            if (this._enabled != isEnabled){
                this._enabled = isEnabled;

                if (this._enabled){
                    this.OnEnabled();
                }else{
                    this.OnDisabled();
                }
            }
        }

        /** 启用此GlobalManager时调用 */
        public OnEnabled() {}

        /** 禁用此GlobalManager时调用 */
        public OnDisabled() {}

        /** 在Scene.update之前调用了每一帧 */
        public Update() {}
    }
}